close all
clear all
clc

format longE

% Numero di termini della successioni
nterm = 40;

% Pre?allocazione dello spazio in memoria
% per questioni di efficienza
u = repmat(NaN,1,nterm);
s = repmat(NaN,1,nterm);
z = repmat(NaN,1,nterm);
y = repmat(NaN,1,nterm);

% Successione 1
s(1) = 1;
u(1) = 1;
s(2) = 1.25;
u(2) = s(2);
for n = 2:nterm-1
    s(n+1) = s(n)+(n+1)^(-2);
    u(n+1) = sqrt(6*s(n+1));
end



% Successione 2
z(1) = 1;
z(2) = 2;
for n = 2:nterm-1
    z(n+1) = (2^(n-(1/2)))*sqrt(1-sqrt(1-(4^(1-n))*((z(n))^2)));
end

% Successione 3
y(1) = 1;
y(2) = 2;
for n = 2:nterm-1
    y(n+1) = (sqrt(2)*abs(y(n)))/sqrt(1+sqrt(1-(4^(1-n))*((y(n))^2)));
end

% Calcolo dell'errore relativo
rel_err_u = abs(u-pi)/pi;
rel_err_z = abs(z-pi)/pi;
rel_err_y = abs(y-pi)/pi;




% Visualizzazione degli errori relativi
h = semilogy(1:length(u),rel_err_u,'k.');
set(h,'LineWidth',2);
hold on;
h = semilogy(1:length(z),rel_err_z,'m+');
set(h,'LineWidth',2);
h = semilogy(1:length(y),rel_err_y,'ro');
set(h,'LineWidth',2);
hold off;
legend('u','z','y');
title('Successioni convergenti a pi');
xlabel('Iterazione');